1. Field of the Invention
The present invention relates to a data processing system realizing a high processing performance by a high parallel processing mechanism, more particularly, it relates to a data processing system capable of executing plural instruction in parallel.
2. Description of the Related Art
FIG. 1 is a block diagram showing a configuration of a typical pipe line processing mechanism of a conventional data processing system.
The pipe line processing mechanism of the data processing system shown in FIG. 1 is constituted by six pipe line stages consisting of an instruction fetch (IF) stage 91 for fetching instruction data, an instruction decoding (D) stage 92 for analyzing instruction data, an address calculation (A) stage 93 for executing operand address calculation, an operand fetch (F) stage 94 for fetching operand data, an execution (E) stage 95 for data processing and an operand writing (W) stage 96 for writing operand data.
In such a pipe line processing mechanism of the conventional data processing system, different instructions can be processed simultaneously in each stage. However, when conflicts occur with respect to the operand access and memory access, processings in the stage with a low priority are interrupted till the conflicts are settled.
As described above, in the data processing system designed for pipe line processing, by dividing the processing into plural stages according to the data processing flow and operating each of the stages simultaneously, a mean processing time necessary for one instruction is shortened to improve the performance as a whole.
An example of data processing system which is made highly efficient by processing the plural instructions simultaneously by the pipe line processing is disclosed in U.S. Pat. No. 4,402,042 "MICROPROCESSOR SYSTEM WITH INSTRUCTION PRE-FETCH".
However, in the data processing system capable of executing up to only one instruction in one machine cycle, the processing performance is restricted by the operating frequency. In order to solve this problem, a plurality of arithmetic units are provided to execute plural instructions in parallel.
For example, in a data processing system called IBM System/360 Model 91, by providing a plurality of adders, multipliers and dividers and adding the function called a "reservation station" to each of the arithmetic units, the instructions are subjected to passing control to improve the processing speed.
The processing is described particularly in "Computer Structures: Principles and Examples" by Daniel P. Siewiorek, C. Gordon Bell and Allen Newell, McGraw-Hill Book Company, PP. 295-298 (1982).
Also, in a microprocessor MC 88100 by Motorola Inc., by providing a mechanism called "register scoreboarding", conflicts occurred between registers used by a plurality of execution units are detected and a parallel processing sequence is controlled. This is described particularly in "32-bit Microprocessor, Parallel Arithmetic Processings improve Performance", Nikkei Electronics, No. 448, PP. 145 through 149 (1988).
Furthermore, there is also such a case that, by providing an exclusive executing unit for simple arithmetic and logic operation instructions, which is operable independently of usual executing units and having no memory operand, the instructions are passed and controlled. The details are disclosed in "Study on CPU Architecture of a 32-bit Microprocessor TX3 based on TRON Specification" by T. Miyamori et al, Shingaku Technical Review, Vol. 87, No. 422, CPSY 87-53, PP. 31 through 36 (1988).
As described above, the conventional data processing system has realized to improve its processing speed by performing parallel execution of instructions and passing control. However, where passing control for integer operation instructions, each of whose execution results are reflected on flags, is executed by providing plural operation units, it is necessary that information to update the flag related to operation execution of the instruction which performed passing should temporarily be saved and this information should be reflected on the flag after instructions to be processed before the instruction which performed passing were all processed.
As may be seen from the above description, in order to update the flag without any inconsistency when passing of instructions is performed, it is necessary to execute considerably complicated update control, and in order to realize a function for executing this update control, it becomes necessary to provide large logical quantities.